create:
	proc;
	%replace
		true  by '1'b,
		false by '0'b;
	%include 'attrib.dcl';
	dcl
		rec char(max_siz),
		rec_no fixed;
	dcl
		att_len entry(fixed) returns(fixed),
		accept  entry(char(max_siz));
	dcl
		key   file,
		data  file,
		sysin file;

	put edit('Creating a New Data Base','')
		(skip(3),a,skip,a);

	on undefinedfile(data)
		call no_dir();
	on undefinedfile(key)
		call no_dir();

	open file(data) record output;
	open file(key)  stream output;

	on endfile(sysin)
		go to end_create;

		do rec_no = 0 by 1;
		/* add another record */
		put edit('Record',rec_no,'') (skip,a,f(5));
		call accept(rec);
		write file(data) from(rec);
		put file(key)
			edit(substr(rec,att_start(1),att_len(1)),'')
			(a,skip);
		if rec_no = 32767 then
			do;
			put skip list('Data Base is Full');
			signal endfile(sysin);
			end;
		end;

	end_create:
	close file(data);
	close file(key);
	put skip(2) list('Data Base Created');
	return;

	no_dir:
		proc;
		put skip list('No Directory Space');
		stop;
		end no_dir;
	end create;
